home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / pcl / src-16f.lha / ldb / pagerlog.c < prev    next >
C/C++ Source or Header  |  1991-11-06  |  768b  |  51 lines

  1. /*
  2.  * $Header: pagerlog.c,v 1.2 91/02/19 12:27:50 ch Exp $
  3.  * 
  4.  * pager log facility
  5.  *
  6.  */
  7.  
  8. #include <stdio.h>
  9. #include <varargs.h>
  10.  
  11. #define PAGERLOG_ENVVAR "PAGERLOG"
  12. #define PAGERLOG_DEFAULT "./pager.log"
  13.  
  14. extern char *getenv();
  15.  
  16. static initialized = 0;
  17. static FILE *logfile;
  18.  
  19. static void
  20. initialize_pagerlog()
  21. {
  22.     char *log;
  23.  
  24.     log = getenv(PAGERLOG_ENVVAR);
  25.     if (log == NULL)
  26.         log = PAGERLOG_DEFAULT;
  27.  
  28.     logfile = fopen(log, "w+");
  29.     if (logfile == (FILE *) NULL) {
  30.         fprintf(stderr, "pagerlog: cannot open \"%s\"\n", log);
  31.         exit(1);
  32.     }
  33.     setlinebuf(logfile);
  34.     initialized = 1;    
  35. }
  36.  
  37. /*VARARGS1*/
  38. pagerlog(fmt, va_alist)
  39. char *fmt;
  40. va_dcl
  41. {
  42.     va_list pvar;
  43.     
  44.     if (!initialized)
  45.         initialize_pagerlog();
  46.  
  47.     va_start(pvar);
  48.     vfprintf(logfile, fmt, pvar);
  49.     va_end(pvar);
  50. }
  51.